﻿using ModelCache.Attributes;
using System;
using System.Collections.Generic;
using System.Text;

namespace Model.SystemDefault
{
    /// <summary>
    /// 采集配置信息
    /// </summary>
    [Table("System_CollectInfoConfig")]
    public class CollectInfoConfigModel:BaseModel
    {
        /// <summary>
        /// 名称
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// 入口地址
        /// </summary>
        public string StartUrl { get; set; }
        /// <summary>
        /// 编码
        /// 解析页面用
        /// </summary>
        public string Encoding { get; set; }
        /// <summary>
        /// 采集深度
        /// 即从入口往下进行多少层
        /// </summary>
        public int Depth { get; set; }
        /// <summary>
        /// 解析类型
        /// 根据类型来解析获取到的页面， 
        /// default 为默认实现的解析实现
        /// Plugin 将根据指定的 PluginPath 中的插件来解析，可根据具体情况指定
        /// </summary>
        public AnalyzeType AnalyzeType { get; set; }
        /// <summary>
        /// 插件路径
        /// 将根据路径解析插件信息
        /// 然后通过反射使用插件
        /// </summary>
        public string PluginPath { get; set; }
        /// <summary>
        /// 最近采集信息时间，每次开启采集应该重置一下时间为最新时间
        /// </summary>
        public DateTime LatestCollectTime { get; set; }
        /// <summary>
        /// 采集器状态
        /// 可用状态才能进行采集
        /// </summary>
        public CollectorStatus CollectorStatus { get; set; }
        /// <summary>
        /// 工作状态（即采集状态）
        /// CollectorStatus 可用时  这个才有可能可用
        /// </summary>
        public WorkStatus WorkStatus { get; set; }
    }

    public enum AnalyzeType
    {
        Default=0,
        Plugin=1
    }
    public enum CollectorStatus
    {
        Available = 1,
        Unavailable = 0
    }
    public enum WorkStatus
    {
        Available = 1,
        Unavailable = 0
    }
}
